The onboard systems, or current portable objects, such as the microprocessor cards or smartcards, PCMCIA cards and electronic assistants tend to perform more and more complex functions, due, in particular, to the installation of multiple application programs, the microprocessor or microcontroller cards being, in this case, known as multi-application cards.
A wide range of applications can be installed in this type of object, due to the flexibility of the current high level languages and their adaptability to the widest range of hardware elements through especially the implementation of virtual machines. In particular, in the framework of the developments in electronic cards with microprocessor or microcontroller, the installation of a large number of applications in this type of card is being considered, applications such as electronic purse, physical access control, access-control to services, for example pay TV programs or similar.
The installation of multiple applications on these portable objects is made possible, firstly, by the miniaturisation of electronic circuits and correlative increase in memory capacity of smartcards and, secondly, by the increase in computation power of the central processing units.
However, the multiplication of applications installed on this type of equipment raises the crucial problem of optimised dynamic memory allocation.
As shown on FIG. 1, the portable object, for example, a microprocessor card and referenced 10, includes the traditional input/output circuits, I/Os, referenced 12, information processing resources, referenced 14, composed of a microcontroller and connected to the input/output circuits 12. In addition, a non volatile memory 18 is planned, which consists of programmable memory 18a and a ROM type read only memory 18b. These memories are connected to the microcontroller or microprocessor 14. Lastly, a working memory, RAM memory, referenced 16, is also planned and connected to the microprocessor. The above-mentioned links are BUS links.
The assembly is managed by an operating system OS, which can be installed in non volatile memory 18. In addition, in some cases, the multi-application portable object may include a cryptographic computation unit SI, referenced 20, itself connected to the microprocessor 14.
The microprocessor itself can be replaced or completed by logic circuits installed in a semiconductor chip, these logic circuits possibly being ASIC (Application Specific Integrated Circuit) type.
We know from document WO 01/16759 registered before this application but published after, a method for allocating memory divided into data blocks in a smartcard.
In order to rationalise the management of the memory workspace available on any computer system, in particular for an onboard system such as a microprocessor or a microcontroller card as shown on FIG. 1, this invention concerns the implementation of a method for dynamically allocating memory workspace by elementary memory blocks to a data structure, the data structures corresponding either to applications as such, to system data used to implement the operating system, or to specific security data such as encryption/decryption access keys or other. The notion of dynamic allocation includes allocation and/or erasure of allocated memory.
This system also concerns, in the context of the above-mentioned rationalisation, finding out quickly to which application or data structure each byte stored in storage area belongs.
This system also concerns the implementation of a method for dynamically allocating memory by elementary memory blocks to a data structure in order to avoid or reduce any crumbling, or fragmentation, phenomenon, during the memory allocation/erasure process.
Lastly, this system also concerns the implementation of a method for dynamically allocating memory by elementary memory blocks, in which the memory integrity is guaranteed by checking the value of each elementary memory block allocated.